// 导入文件系统模块，用于读取文件
const fs = require('fs');
// 导入axios模块，用于发送HTTP请求
const axios = require('axios');
// 定义图片路径
const image_path = "mulvus.jpg";
// 读取图片文件并转换为base64编码
const base64_image = fs.readFileSync(image_path).toString('base64');
// 定义图片格式
const image_format = "jpeg";
// 构建完整的base64图片数据，包含MIME类型前缀
const image_data = `data:image/${image_format};base64,${base64_image}`;

// 定义异步函数，用于调用多模态嵌入API
async function callMultiModalEmbedding() {
    try {
        // 使用axios发送POST请求到阿里云灵积模型服务
        const url =  'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding';

        const response = await axios.post(
           url, {
            // 指定使用的模型
            model: "multimodal-embedding-v1",
            // 构建输入数据，包含图片内容
            input: {
                contents: [{
                    image: image_data
                }]
            }
        }, {
            // 设置请求头
            headers: {
                // 设置授权令牌
                'Authorization': 'Bearer sk-cc2054c29cf54fec92503bf7016cf383',
                // 设置内容类型为JSON
                'Content-Type': 'application/json'
            }
        });
        // 检查响应状态码是否为200（成功）
        if (response.status === 200) {
            // 打印响应数据的output部分，格式化为JSON字符串
            console.log(JSON.stringify(response.data.output, null, 4));
        }
    } catch (error) {
        // 捕获并打印错误信息
        console.error('调用模型接口失败:', error);
        // 如果错误对象包含响应数据，则打印详细错误信息
        if (error.response) {
            console.log('错误详情:', error.response.data);
        }
    }
}

// 调用多模态嵌入函数
callMultiModalEmbedding();